package com.wzdigit.wms.basic.domain.transfer;

import com.baomidou.mybatisplus.annotation.*;
import com.wzdigit.framework.orm.model.BasicDomain;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * <p>
 * 库存调拨单表头
 * </p>
 *
 * @author 
 * @since 2021-01-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("WMS_TRANSFER_HEADER")
@KeySequence(value = "WMS_TRANSFER_HEADER_SEQ", clazz = Integer.class)
public class TransferHeader extends BasicDomain {

    private static final long serialVersionUID = 1L;

    /**
     * 调拨单表头ID
     */
    @TableId(value = "TRANSFER_HEADER_ID",type = IdType.INPUT)
    private Integer transferHeaderId;

    /**
     * 调拨单号
     */
    @TableField("TRANSFER_NO")
    private String transferNo;

    /**
     * 调拨单类型
     */
    @TableField("TRANSFER_TYPE")
    private String transferType;

    /**
     * 调拨原因代码
     */
    @TableField("REASON_CODE")
    private Integer reasonCode;

    /**
     * 调拨原因
     */
    @TableField("REASON")
    private String reason;

    /**
     * 来源单号
     */
    @TableField("SOURCE_NO")
    private String sourceNo;

    /**
     * 来源仓库
     */
    @TableField("FM_WHS")
    private Integer fmWhs;

    /**
     * 目标仓库
     */
    @TableField("TO_WHS")
    private Integer toWhs;

    /**
     * 车牌号
     */
    @TableField("DELIVERY_VEHICLE_NO")
    private String deliveryVehicleNo;

    /**
     * 车型
     */
    @TableField("DELIVERY_VEHICLE_TYPE")
    private Integer deliveryVehicleType;

    /**
     * 司机
     */
    @TableField("DRIVER")
    private String driver;

    /**
     *

     */
    @TableField("PRINT_FLAG")
    private Integer printFlag;

    /**
     * 来源方业务员
     */
    @TableField("FM_BUSINESS_MAN")
    private String fmBusinessMan;

    /**
     * 接收方业务员
     */
    @TableField("TO_BUSINESS_MAN")
    private String toBusinessMan;

    /**
     * 数据来源
     */
    @TableField("DATA_SOURCE")
    private String dataSource;

    /**
     * 调拨单参考信息1
     */
    @TableField("TRANSFER_REF1")
    private String transferRef1;

    /**
     * 调拨单参考信息2
     */
    @TableField("TRANSFER_REF2")
    private String transferRef2;

    /**
     * 调拨单参考信息3
     */
    @TableField("TRANSFER_REF3")
    private String transferRef3;

    /**
     * 调拨单参考信息4
     */
    @TableField("TRANSFER_REF4")
    private String transferRef4;

    /**
     * 调拨单参考信息5
     */
    @TableField("TRANSFER_REF5")
    private String transferRef5;

    /**
     * 用户自定义字段1
     */
    @TableField("UDF1")
    private String udf1;

    /**
     * 用户自定义字段2
     */
    @TableField("UDF2")
    private String udf2;

    /**
     * 用户自定义字段3
     */
    @TableField("UDF3")
    private String udf3;

    /**
     * 用户自定义字段4
     */
    @TableField("UDF4")
    private String udf4;

    /**
     * 用户自定义字段5
     */
    @TableField("UDF5")
    private String udf5;

    /**
     * 备注
     */
    @TableField("COMMENTS")
    private String comments;

    /**
     * ASN 状态 － 该单证当前状态。系统提供 ASN 创建、已码盘、部分收货、完全收货、
     订单取消、ASN 完成等状态。在创建一个新的 ASN 时，ASN 状态默认为 ASN 创建，系统
     会根据 ASN 操作情况自动更新。
     */
    @TableField("STATUS")
    private Integer status;

    /**
     * 调拨单创建时间
     */
    @TableField("TRANSFER_CREATE_TIME")
    private Date transferCreateTime;

    /**
     * 调拨单完成时间
     */
    @TableField("TRANSFER_CMP_TIME")
    private Date transferCmpTime;

    
    @TableField("ERP_MOVE_TYPE")
    private String erpMoveType;

    /**
     * 建单人
     */
    @TableField("TRANSFER_CREATE_USER")
    private String transferCreateUser;

    /**
     * 采购组织
     */
    @TableField("PURCHSING_ORG")
    private String purchsingOrg;

    /**
     * 公司代码
     */
    @TableField("COMPANY_CODE")
    private String companyCode;

    /**
     * 调拨部门
     */
    @TableField("TRANSFER_DEPT")
    private String transferDept;

    /**
     * 审单人
     */
    @TableField("TRANSFER_APPROVED_USER")
    private String transferApprovedUser;

    /**
     * 审核时间
     */
    @TableField("TRANSFER_APPROVED_TIME")
    private Date transferApprovedTime;

    @TableField("CLOSEEND_TIME")
    private Date closeendTime;


}
